Control flow graphs are used in computer science to represent all of the paths a program may traverse during execution of the program. In a control flow graph, each node may represent a block of code, and the edges of the graph represent possible jumps in the control flow. Control flow graphs are often used in static analyses of code, as well as various compiler optimizations.